package proyecto.gestionarDatosDeRequisitosDeConocimientosPrevios;

import java.util.Date;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import proyecto.BusinessLogic.RequisitoConocimientosBLRemote;
    
  
public class RequisitoConocimientosPreviosForm extends ActionForm {
	private int idRequisitosConocimientos;
	private String nombre;
	private String descripcion;
	private String fechaAlta;
	private Boolean seleccion;
		
	public int getIdRequisitosConocimientos() {
		return idRequisitosConocimientos;
	}

	public void setIdRequisitosConocimientos(int idRequisitosConocimientos) {
		this.idRequisitosConocimientos = idRequisitosConocimientos;
	}

	public String getDescripcion() {
		return descripcion;
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
		
	public String getFechaAlta() {
		return fechaAlta;
	}

	public void setFechaAlta(String fechaAlta) {
		this.fechaAlta = fechaAlta;
	}
	
	public Boolean getSeleccion() {
		return seleccion;
	}

	public void setSeleccion(Boolean seleccion) {
		this.seleccion = seleccion;
	}

	public void reset(ActionMapping mapping,
			HttpServletRequest request) {
			idRequisitosConocimientos=0;
			nombre=null;
			descripcion=null;	
			fechaAlta=null;
			seleccion=false;
	}
	
	
	public ActionErrors validate(
			ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		
		//valida si el campo nombre es vacio
		if (nombre==null || nombre.trim().equals("")){
			errors.add("nombre",
			new ActionError(
			"AltaRequisitosConocimientosPrevios.nombre.problem"));			
		}
		
		//valida si el Requisito de Conocimientos Previos ingresado ya existe en bd
		RequisitoConocimientosBLRemote requisitoConocimientosBLRemote = null;
		final Context context;	
		try
		{							
			context = new InitialContext();					
			requisitoConocimientosBLRemote = (RequisitoConocimientosBLRemote) context.lookup("RequisitoConocimientosBL/remote");
		} catch (NamingException e)				{
			e.printStackTrace();
			throw new RuntimeException(e);				
		}
		List requisitos = requisitoConocimientosBLRemote.findByName(nombre);
		if (requisitos.size() > 0)
		{
			errors.add("nombre",
					new ActionError(
					"AltaRequisitosConocimientosPrevios.requisito.problem"));
		}
		return errors;
	}
}
